/**
 * LEKU APPLIANCE CHAINS.
 * Copyright (c) 2016-2016 All Rights Reserved.
 */
package com.leku.mse.dao.diary;

import java.util.List;

import com.leku.mse.entity.diary.AlbumBaseEntity;
import com.leku.mse.entity.diary.DiaryBaseEntity;

/**
 * 功能描述: 手账服务
 *
 * @author suiying
 * @created 2018年1月2日
 * @version 1.0.0
 */
public interface DiaryDao {

    /**
     * 
     * 功能描述: 手账基本信息
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    DiaryBaseEntity getDiaryBase(String diaryId);

    /**
     * 
     * 功能描述: 获取手账内容
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    String getDiaryData(String diaryId);

    /**
     * 
     * 功能描述: 更新手账得分
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiaryScore(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 写入手账热门
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int insertDiaryHot(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 写入自动推荐手账
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int insertDiarySysRecom(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 删除热门手账
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int deleteDiaryHot(String diaryId);

    /**
     * 
     * 功能描述: 删除自动推荐手账
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int deleteDiarySysRecom(String diaryId);

    /**
     * 
     * 功能描述: 获取手账本数据
     *
     * @param albumId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    AlbumBaseEntity getAlbumBase(String albumId);

    /**
     * 
     * 功能描述: 查询手账ID列表
     *
     * @param albumId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<String> queryDairyIds(String albumId);

    /**
     * 
     * 功能描述: 更新手账编辑处理状态
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiaryEditStatus(String diaryId);

    /**
     * 
     * 功能描述: 更新手账删除处理状态
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiaryDelStatus(String diaryId);

    /**
     * 
     * 功能描述: 更新手账转移处理状态
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiaryMoveStatus(String diaryId);

    /**
     * 
     * 功能描述: 删除手账参与的兴趣组
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int deleteDiaryTaste(String diaryId);

    /**
     * 
     * 功能描述: 更新手账搜索
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiarySearch(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 新增手账搜索
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int insertDiarySearch(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 删除手账搜索
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int deleteDiarySearch(String diaryId);

    /**
     * 
     * 功能描述: 更新会员中心我的手帐
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateMemDiary(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述:新增会员中心我的手帐
     *
     * @param diaryBase
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int insertMemDiary(DiaryBaseEntity diaryBase);

    /**
     * 
     * 功能描述: 删除会员中心我的手帐
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int deleteMemDiary(String diaryId);

    /**
     * 
     * 功能描述: 获取手帐图片数据
     *
     * @param diaryId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    DiaryBaseEntity getDiaryImg(String diaryId);

    /**
     * 
     * 功能描述: 更新手帐兴趣组状态
     *
     * @param diaryId
     * @param status
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    int updateDiaryTasteStatus(String diaryId, Integer status);
}
